技術問答
技術文章
iT 徵才
Tag
聊天室
2023 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
0
作業系統L6-同步
作業系統
蔡基
2022-01-06 00:21:01
‧
2288 瀏覽
分享至
作業系統L6-同步
臨界區間(critical section)
每一行程中的部分程式碼,可以共同改變變數,更新表格,寫入檔案
區間結構
入口區段(entry section):臨界區間入口
出口區段(exit section):臨界區間出口
剩餘區段(remainder section)
臨界區間問題
條件
互斥(Mutual Exclusion)
:若有行程已在
臨界區間
執行,其他行程不能再同區間執行
進行(Progress)
:被選擇的行程不得被無限延遲下去
限制性等待(Bounded Waiting)
:一個行程被要求進入
臨界區間
答應前,允許其他一個行程進入
問題解答
可搶先核心(preemptive kernels)
:
核心模式
執行時可搶先
不可搶先核心(nonpreemptive kernels)
:離開
核心模式
或自動交出CPU時才可搶先
同步硬體
鎖(locking)
用於保護
臨界區間
單一處理器可停止中斷,多處理器較沒效率
同步軟體
互斥鎖(Mutex Lock)
acquire():取得鎖
release():釋放鎖
忙碌等待(busy waiting)
自旋鎖(spinlock)
號誌(Semaphore)
不需要忙碌等待的同步工具
計數號誌(Counting semaphore)
:不受限制的整數值
二元號誌(Binary semaphore)
:數值可以是0,1,可用來取代
互斥鎖
無忙碌等待的號誌
每個號誌都有一個相關聯的
等待佇列
數值(整數型態)
指向串列的下一筆紀錄
操作
block:把呼叫操作的行程放到適當的等候佇列
wakeup:移除等候佇列的一個行程,放到就緒佇列
死結和飢餓
死結(Dead Lock)
:兩個以上的行程等待一個只能被等待的行程
飢餓(Starvation)
:無限期阻隔
優先權倒置(Priority Inversion)
:高優先權行程被低優先權行程鎖把持造成排班問題,需用**優先權繼承協定(priority-inheritance protocol)**解決
典型的同步問題
有限緩衝區問題
n個緩衝區,每一個緩衝區保存一項資料
讀取者-寫入者問題
讀取者
:只能讀取資料集;它們不能執行資料集
寫入者
:可以讀和寫資料集
允許許多
讀取者
同時去讀取共用資料
同一時間只有一個
寫入者
可以存取資料
讀取者-寫入者問題的變形
除非有寫入者已獲得允許去使用共用資料,否則讀取者不需保持等候狀態
只要寫入者準備好之後,需要盡快的撰寫共用資料
哲學家進餐的問題(Dining-philosophers Problem)
需兩枝筷子才能吃,吃完同時放下兩枝筷子
監督程式
一種對於行程同步提供方便和有效機制的高階使用一組操作資料的函數來封裝資料
抽象資料型態(abstract data type,ADT):只能由程序內執行碼存取的內部變數
條件變數
condition x, y;
x.wait () :使用後的行程會被暫停,直到x.signal ()發生
x.signal ():恢復因為x.wait ()而被暫停的行程
留言
追蹤
檢舉
直播研討會
{{ item.subject }}
{{ item.channelVendor }}
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1123
組
團體組數
52
組
累計文章數
23096
篇
完賽人數
656
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
2018鐵人賽
javascript
2017鐵人賽
python
windows
php
c#
windows server
linux
css
程式設計
react
vue.js
熱門問題
老婆line被盜用換sin卡也無法拿回帳號使用權
ISO 27001改版輔導顧問公司推薦
怎麼才能免費申請
如果當超人拯救了別人,世界真的需要超人嗎?
網路佈線請益
VM以瀏覽器連線至虛擬機器的問題
檔案管理與呼叫資料夾(電腦使用習慣)
win10更改資料夾顏色
AD群組原則與使用者端不同步
Docker打包程式的方式
熱門回答
如果當超人拯救了別人,世界真的需要超人嗎?
網路佈線請益
FAT32 有分什麼版本嗎? CCTV 不支持
win10更改資料夾顏色
PC安裝ESXi 8.0備份問題
熱門文章
Vigor Router Firewall NAT 一開全球通,如何做限制,只允許白名單IP通過,甚至敲門再開 TOTP 驗證
你知道駭客如何入侵你的網站嗎?
如何不顯示臉書的贊助商廣告 跟 為你推薦
使用 AWS建立商品管理系統
如何使用AWS AI Service Cards – Amazon Rekognition ?
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}